import request from '@/utils/request'
import qs from 'qs'

/**
 * 分页查询开瓶码商品
 * @param {String} name 商品名称
 * @param {Number} minPoint 最小积分
 * @param {Number} maxPoint 最大积分
 * @param {Number} pageSize 页数
 * @param {Number} pageIndex 页码
 * @param {Boolean} isDeleted 是否删除
*/
export function GetBottleCodeItemsPage(params) {
  return request({
    url: 'BottleCode/GetBottleCodeItemsPage',
    method: 'get',
    params
  })
}
/**
 * 导出扫码记录
*/
export function ExportScannedBottleCodePonts(params) {
  return request({
    url: 'BottleCode/ExportScannedBottleCodePonts',
    method: 'get',
    responseType: 'blob',
    params,
    paramsSerializer: params => {
      return qs.stringify(params, { indices: false })
    }
  })
}
/**
 * 分页查询闪酿可以添加开瓶码的商品
 * @param {String} name 商品名称
 * @param {Number} pageSize 页数
 * @param {Number} pageIndex 页码
*/
export function SearchItemsFromShanNiangPage(params) {
  return request({
    url: 'BottleCode/SearchItemsFromShanNiangPage',
    method: 'get',
    params
  })
}
/**
 * 添加闪酿商品到开瓶码商品
 * @param {String} id 商品ID
*/
export function SaveBottleCodeItem(params) {
  return request({
    url: 'BottleCode/SaveBottleCodeItem',
    method: 'put',
    data: params
  })
}
/**
 * 设计开瓶码商品的基础积分
 * @param {String} id 商品ID
 * @param {Number} basePoint 基础积分
*/
export function SetBottleCodeItem(params) {
  return request({
    url: 'BottleCode/SetBottleCodeItem',
    method: 'put',
    data: params
  })
}
/**
 * 设计开瓶码商品的基础积分
 * @param {String} uriModel 调整地址
 * @param {String} bottleCodeItemId 开瓶码商品ID
 * @param {Number} createCount 创建数量
*/
export function CreateBottleCodes(params) {
  return request({
    url: 'BottleCode/CreateBottleCodes',
    method: 'post',
    data: params
  })
}
/**
 * 删除商品
 * @param {String} id 开瓶码主键ID
*/
export function DeleteBottleCodeItem(params) {
  return request({
    url: 'BottleCode/DeleteBottleCodeItem',
    method: 'delete',
    params
  })
}
/**
 * 分页查询开瓶码商品
 * @param {String} BottleCodeBatchId 批次ID
 * @param {String} code 开瓶码筛选
 * @param {Number} pageSize 页数
 * @param {Number} pageIndex 页码
*/
export function GetBottleCodesPage(params) {
  return request({
    url: 'BottleCode/GetBottleCodesPage',
    method: 'get',
    params
  })
}

/**
 * 分页查询开瓶码商品
 * @param {String} Name 批次名称Id
 * @param {String} BottleCodeItemId 开瓶码商品Id
 * @param {Number} pageSize 页数
 * @param {Number} pageIndex 页码
*/
export function GetBottleCodeBatchesPage(params) {
  return request({
    url: 'BottleCode/GetBottleCodeBatchesPage',
    method: 'get',
    params
  })
}
/**
 * 分页查询开瓶码商品
 * @param {String} Name 批次名称
 * @param {String} BottleCodeItemId 开瓶码商品Id
 * @param {Number} createCount 新建数量
 * @param {Boolean} hasPoints 是否有积分
*/
export function CreateBottleCodeBatch(params) {
  return request({
    url: 'BottleCode/CreateBottleCodeBatch',
    method: 'post',
    data: params
  })
}
/**
 * 按照批次导出开瓶码
 * @param {String} BottleCodeItemId 开瓶码商品Id
*/
export function ExportBottleCodes(params) {
  return request({
    url: 'BottleCode/ExportBottleCodes',
    method: 'get',
    responseType: 'blob',
    params,
    paramsSerializer: params => {
      return qs.stringify(params, { indices: false })
    }
  })
}
/**
 * 删除开瓶码批次
 * @param {String} id 开瓶码批次ID
*/
export function DeleteBottleCodeBath(params) {
  return request({
    url: 'BottleCode/DeleteBottleCodeBath',
    method: 'delete',
    params
  })
}
/**
 * 删除开瓶码
 * @param {String} BottleCodeItemId 开瓶码主键ID
*/
export function DeleteBottleCodes(params) {
  return request({
    url: 'BottleCode/DeleteBottleCodes',
    method: 'delete',
    params
  })
}
/**
 * 切换导入开瓶码商品的删除状态
 * @param {String} id 开瓶码主键ID
*/
export function ToggleBottleCodeItemDeletation(params) {
  return request({
    url: 'BottleCode/ToggleBottleCodeItemDeletation',
    method: 'put',
    params
  })
}
/**
 * 切换导入开瓶码批次是否含有积分
 * @param {String} id 开瓶码主键ID
*/
export function ToggleBottleBatchHasPoint(params) {
  return request({
    url: 'BottleCode/ToggleBottleBatchHasPoint',
    method: 'put',
    data: params
  })
}
/**
 * 分页查询开瓶码商品
 * @param {String} bottleCodeItemId 开瓶码商品Id
 * @param {String} userId 用户Id
 * @param {Number} pageSize 页数
 * @param {Number} pageIndex 页码
 * @param {Number} beginTime 开始时间
 * @param {Number} endTime 结束时间
*/
export function SearchBottleCodePointsPage(params) {
  return request({
    url: 'BottleCode/SearchBottleCodePointsPage',
    method: 'get',
    params
  })
}
/**
 * 切换导入开瓶码商品的删除状态
 * @param {String} resourceId 导入Excel文件资源Id
 * @param {String} bottleCodeItemId 商品ID
 * @param {String} name 批次名称
 * @param {Boolean} hasPoints 是否有积分
*/
export function ImportBottleCodeBatch(params) {
  return request({
    url: 'BottleCode/ImportBottleCodeBatch',
    method: 'put',
    data: params
  })
}

/**
 * 分页获取调酒师列表
 * @param {String} Realname 用户ID
 * @param {String} PhoneNumber 用户ID
 * @param {Array} Enterprises 是否彻底删除
 * @param {Number} PageIndex 是否彻底删除
 * @param {Number} PageSize 是否彻底删除
 */
export function GetBartenderPage(params) {
  return request({
    url: 'Bartender/Page',
    method: 'get',
    params,
    paramsSerializer: params => {
      return qs.stringify(params, { indices: false })
    }
  })
}
/**
 * 分页获取调酒师列表
 * @param {String} Code 码
 * @param {String} CodeType 码类型0:瓶码, 1:箱码, 2:托码, 3:条码,
 * @param {String} EnterpriseId 企业ID
 */
export function GetBoxCode(params) {
  return request({
    url: 'BoxCode/GetBoxCode',
    method: 'get',
    params,
  })
}
/**
 * 分页获取调酒师列表
 * @param {String} BoxCodeBachId 箱码批次
 * @param {String} CodeStartWith 码开始
 * @param {Number} PageIndex 页码
 * @param {Number} PageSize 页数
 */
export function GetBoxCodesPage(params) {
  return request({
    url: 'BoxCode/GetBoxCodesPage',
    method: 'get',
    params,
  })
}

/**
 * 分页获取调酒师列表
 * @param {String} BoxCodeBachId 箱码批次
 * @param {String} CodeStartWith 码开始
 * @param {Number} PageIndex 页码
 * @param {Number} PageSize 页数
 */
export function GetBoxCodeBatchesPage(params) {
  return request({
    url: 'BoxCode/GetBoxCodeBatchesPage',
    method: 'get',
    params,
  })
}
/**
 * 新增箱码批次 生成箱码
 * @param {Number} boxSize 箱规，每箱多少瓶码
 * @param {Number} generateQuantity 生成数量
 * @param {String} name 批次名称
 */
export function StartGenerateCombinationCodesTask(params) {
  return request({
    url: 'BoxCode/StartGenerateCombinationCodesTask',
    method: 'post',
    data:params,
  })
}
/**
 * 开启箱码导入任务
 */
export function StartImportBoxCodesTask(params) {
  return request({
    url: 'BoxCode/StartImportBoxCodesTask',
    method: 'post',
    data:params,
  })
}
/**
 * 查询生成箱码的进度
 * @param {String} taskIds 箱码id
 */
export function GetTaskCompletionRatios(params) {
  return request({
    url: 'BoxCode/GetTaskCompletionRatio',
    method: 'get',
    params,
  })
}
/**
 * 删除箱码
 * @param {String} id 箱码id
 * @param {Boolean} Thoroughly 是否彻底删除
 */
export function DeleteBoxCode(params) {
  return request({
    url: 'BoxCode/DeleteBoxCode',
    method: 'delete',
    params,
  })
}
/**
 * 删除箱码批次
 * @param {String} id 箱码批次批次id
 * @param {Boolean} Thoroughly 是否彻底删除
 */
export function DeleteBoxCodeBatch(params) {
  return request({
    url: 'BoxCode/DeleteBoxCodeBatch',
    method: 'delete',
    params,
  })
}
/**
 * 删除箱码批次
 * @param {String} id 箱码批次批次id
 * @param {Boolean} Thoroughly 是否彻底删除
 */
export function CancelTask(params) {
  return request({
    url: 'BoxCode/CancelTask',
    method: 'put',
    params,
  })
}
/**
 * 修改箱码企业ID
 * @param {String} boxCode 箱码
 * @param {String} newEnterpriseId 新的企业ID
 */
export function SetBoxCodeEnterprise(params) {
  return request({
    url: 'BoxCode/SetBoxCodeEnterprise',
    method: 'put',
   data:params,
  })
}
/**
 * 批量修改箱码企业ID
 * @param {String} boxCode 箱码
 * @param {String} newEnterpriseId 新的企业ID
 */
export function SetBoxCodesEnterpriseBatch(params) {
  return request({
    url: 'BoxCode/SetBoxCodesEnterpriseBatch',
    method: 'put',
    data:params,
  })
}
/**
 * 按照筛选条件导出箱码
 * @param {String} id 箱码批次批次id
 * @param {String} CodeStartWith 是否彻底删除
 */
export function ExportBoxCodesPage(params) {
  return request({
    url: 'BoxCode/ExportBoxCodesPage',
    method: 'get',
    responseType: 'blob',
    params,
    paramsSerializer: params => {
      return qs.stringify(params, { indices: false })
    }
  })
}
/**
 * 导出空箱码
 * @param {Number} count 数量
 * @param {Number} codeType 0:平码;1:箱码;2:托码
 */
export function GenerateCodes(params) {
  return request({
    url: 'BoxCode/GenerateCodes',
    method: 'get',
    responseType: 'blob',
    params,
    paramsSerializer: params => {
      return qs.stringify(params, { indices: false })
    }
  })
}
/**
 * 分页查询装箱记录
 */
export function GetPackingRecordsPageMng(params) {
  return request({
    url: 'Packing/GetPackingRecordsPageMng',
    method: 'get',
    params,
  })
}
/**
 * 分页装箱人
 */
export function GetPackingUsers(params) {
  return request({
    url: 'Packing/GetPackingUsers',
    method: 'get',
    params,
  })
}

/**
 * 分页装箱商品
 */
export function GetPackingItems(params) {
  return request({
    url: 'Packing/GetPackingItems',
    method: 'get',
    params,
  })
}